using MediatR;
using RBAC.ErrorCode;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
namespace RBAC.Write.Api.Application.Command.ProcurementOrderInfo
{
    public class AddProcurementCommands:IRequest<APIResult<int>>
    {
        /// <summary>
        /// 订单主题
        /// </summary>
        [Required]
        public string OrderTheme { get; set; }

        /// <summary>
        /// 采购单号（唯一）
        /// </summary>
        [Required]
        public string ProcurementCode { get; set; }

        /// <summary>
        /// 关联请购
        /// </summary>
        public string? AssociateRequisition { get; set; }

        /// <summary>
        /// 关联销售订单
        /// </summary>
        public string? AssociateSalesOrders { get; set; }

        /// <summary>
        /// 采购日期
        /// </summary>
        [Required]
        public DateTime DatePurchase { get; set; }

        /// <summary>
        /// 供应商名称
        /// </summary>
        [Required]
        public string VendorName { get; set; }

        /// <summary>
        /// 联系人
        /// </summary>
        public string? Contact { get; set; }

        /// <summary>
        /// 联系电话
        /// </summary>
        public string? ContactNumber { get; set; }

        /// <summary>
        /// 采购人员
        /// </summary>
        public string? PurchasingPersonnel { get; set; }

        /// <summary>
        /// 采购部门
        /// </summary>
        public string? PurchasingDepartment { get; set; }

        /// <summary>
        /// 联系方式
        /// </summary>
        public string? ContactInformation { get; set; }

        /// <summary>
        /// 关联项目
        /// </summary>
        public string? AssociatedProjects { get; set; }

        /// <summary>
        /// 结算方式
        /// </summary>
        public string? SettlementMethod { get; set; }

        /// <summary>
        /// 交付地址
        /// </summary>
        public string? DeliveryAddress { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string? Remark { get; set; }

        /// <summary>
        /// 销售表Id
        /// </summary>
        [Required]
        public long SalesId { get; set; }

        /// <summary>
        /// 物品ID集合（按每个GoodsId生成一条采购订单记录）
        /// </summary>
        [Required]
        public List<long> GoodsIds { get; set; } = new();
    }
}
